package com.myk.game.sumeru.interfaces;

import com.myk.game.sumeru.game.Chess;
import com.myk.game.sumeru.game.Map;

import java.util.List;

public interface IGame {
    String RULE = "\t\t\t\t\t\t\t\t\t\t\t\t《须弥斗棋》\n\n" +
            "[游戏规则]：\n" +
            "\t\t11x11格子棋盘。\n" +
            "\t\t双方底线前1行除了两角范围的格子为村落。\n" +
            "\t\t双方底线两角互为一对相通的洞穴，它们之间可以直接移动过去。\n" +
            "\t\t中间3x3格子为水源，在水源里的棋子会强化战力+1。\n" +
            "\t\t主动移动进入对方村落的棋子可以转变为一个己方已被吃掉的棋子。\n" +
            "\t\t双方各9枚棋子，棋子类型各异。\n" +
            "\t\t棋子有两个基本属性：移动距离(1-3)和等级(1-3)。\n" +
            "\t\t棋子都有一个特殊能力，离开自己村落特殊能力才能生效才会生效。\n" +
            "\t\t光环强化或削弱的属性是快照机制（一般移动或者吃完子之后才会重新更改数值）。\n" +
            "\t\t双方对战开局，双方把棋子在自己的底线自由排布。\n" +
            "\t\t另外水源上会有9个中立棋子，中立棋子相对双方都属于敌方棋子，会阻挡其它棋子，自身不能主动移动，可以被吃。\n" +
            "\t\t1222行动制，即先手开局第一次只能选择一枚棋子移动，之后每回合可以移动两枚棋子。\n" +
            "\t\t移动步数可以小于移速，也可以移动0步。\n" +
            "\t\t棋子移动可以穿过己方棋子，不能穿过对方棋子，同一个格子只能有一个棋子。\n" +
            "\t\t移动范围内，己方棋子战力大于对方棋子时，可以落点踩吃。\n" +
            "\t\t获胜条件，杀的对面只剩下一个棋子。\n\n" +
            "[棋子设计]：\n" +
            "\t\t战舞姬 力1 速1   相邻的己方棋子移速和战力都+1。\n" +
            "\t\t戏法师 力1 速2   可将移速范围内一个棋子移动到另一个位置，移动到棋盘外的棋子算被吃掉。\n" +
            "\t\t猎人王 力1 速2   可以吃比自己战力高的棋子。\n" +
            "\t\t影刺客 力1 速3   移动可以穿过敌方棋子，吃子后可以再次移动。\n" +
            "\t\t狂牛  力2 速1     移动后击退所有相邻的棋子，击退的距离为狂牛的战力值，撞出棋盘的棋子算被吃掉。\n" +
            "\t\t猛虎  力2 速2     移速范围内所有其它棋子移速-1。\n" +
            "\t\t毒蛇  力2 速3     前方直线方向移速范围内的第一个棋子力量和移速都-1。\n" +
            "\t\t神木守护 力3 速1    移速范围内的己方棋子不能被吃。\n" +
            "\t\t泥沙吞噬 力3 速2    吃子后战力临时+1，下回合开始时恢复。\n" +
            "\t\t水源蕈兽 力0 速0   战力和移速永久为0。";

    //Mushroom beast

    void init(IGameUI gameUI);

    void start();

    Map getMap();

    List<Chess> getChesses(int party);

    IGameUI getGameUi();
}
